package com.dc.di.sf.dt;

import org.apache.axiom.om.OMElement;

import com.dc.di.sf.utils.OMUtils;

public class ExtendAttribute implements DTObject<ExtendAttribute> {

	public static final String TAG_EXTENDATTRIBUTE = "ExtendAttribute";
	public static final String TAG_ATTRIBUTENAME = "AttributeName";
	public static final String TAG_ATTRIBUTEVALUE = "AttributeValue";

	private String attributeName;
	private String attributeValue;

	public ExtendAttribute() {

	}

	public ExtendAttribute(OMElement xml) {
		this();
		fromXML(xml);
	}

	/**
	 * @return the attributeName
	 */
	public String getAttributeName() {
		return attributeName;
	}

	/**
	 * @param attributeName
	 *            the attributeName to set
	 */
	public void setAttributeName(String attributeName) {
		this.attributeName = attributeName;
	}

	/**
	 * @return the attributeValue
	 */
	public String getAttributeValue() {
		return attributeValue;
	}

	/**
	 * @param attributeValue
	 *            the attributeValue to set
	 */
	public void setAttributeValue(String attributeValue) {
		this.attributeValue = attributeValue;
	}

	public OMElement toXML() {
		OMElement attribute = OMUtils.createOMElement(TAG_EXTENDATTRIBUTE);
		attribute.addChild(OMUtils.createOMElementWithText(TAG_ATTRIBUTENAME, attributeName));
		attribute.addChild(OMUtils.createOMElementWithText(TAG_ATTRIBUTEVALUE, attributeValue));
		return attribute;
	}

	public ExtendAttribute fromXML(OMElement xml) {
		if (xml != null) {
			attributeName = OMUtils.getTextOfChild(xml, TAG_ATTRIBUTENAME);
			attributeValue = OMUtils.getTextOfChild(xml, TAG_ATTRIBUTEVALUE);
		}
		return this;
	}

	/* (non-Javadoc)
	 * @see com.dc.di.sf.dt.DTObject#toXMLString()
	 */
	public String toXMLString() {
		StringBuilder sb = new StringBuilder();
		sb.append(OMUtils.generateOMElementBeginString(TAG_EXTENDATTRIBUTE));
		sb.append(OMUtils.generateOMElementString(TAG_ATTRIBUTENAME, attributeName));
		sb.append(OMUtils.generateOMElementString(TAG_ATTRIBUTEVALUE, attributeValue));
		sb.append(OMUtils.generateOMElementEndString(TAG_EXTENDATTRIBUTE));
		return sb.toString();
	}

}
